import numpy as np
import matplotlib.pyplot as plt


def binomial_demo1():
    """
    二项式分布：
    binomial(n, p, size= None) 表示对一个二分布进行采样，s为成功次数
    P(N)=CsnPs(1-P)n-s
    size：采样次数， n:p即式中的n， p： 函数的返回值表示n中发生成功的次数s
    同时抛硬币9枚， 如果正面上少于5个，则输掉8元， 反之赢8元， 如果手中有1000， 最后能赢多少

    :return:
    """
    # 生成二项分布随机数 9 次数， 0.5 成功次数， 10000： 抛10000次
    binomial = np.random.binomial(9, 0.5, 10000)
    # 生成1000次赌资列表
    money = np.zeros(10000)
    # 首次赌资为1000
    money[0] = 1000

    for i in range(1, 10000):
        # 如果正面上少于5个，则输掉8元， 反之赢8元，
        if binomial[i] < 5:
            money[i] = money[i - 1] - 8
        else:
            money[i] = money[i - 1] + 8
    plt.plot(np.arange(10000), money)
    plt.show()
    print(binomial)


if __name__ == '__main__':
    binomial_demo1()
